﻿using Coldairarrow.Business.TD;
using Coldairarrow.Entity.DTO;
using Coldairarrow.Entity.PB;
using Coldairarrow.Util;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Coldairarrow.Business.PB
{
    public partial interface IPB_PickUpMainBusiness
    {
        Task<PageResult<PB_PickUpMain>> GetDataListAsync(PageInput<List<ConditionDTO>> input);
        Task<PB_PickUpMain> GetTheDataAsync(string id);
        Task AddDataAsync(PB_PickUpMain data);
        Task UpdateDataAsync(PB_PickUpMain data);
        Task DeleteDataAsync(List<string> ids);
        /// <summary>
        /// 打印备货单接口
        /// </summary>
        /// <param name="ParentId"></param>
        /// <returns></returns>
        Task<List<PB_PickUpMaininfo>> GetDataListInfo(string ParentId);
        /// <summary>
        /// 装车验证
        /// </summary>
        /// <returns></returns>
        Task<PB_PickUpListTansportBillDTO> GetTranspotBillByPickUpListId(PageInput<ConditionDTO> input);
        Task<List<PB_PickUpMainDataListDTO>> GetPickUpMainDataList();
        /// <summary>
        /// 打印装车单 接口
        /// </summary>
        /// <param name="ParentId"></param>
        /// <returns></returns>
        Task<PB_PickUpMainLoading> GetDataListLoadingInfo(string ParentId, string id);
        /// <summary>
        /// 备货展示步数
        /// </summary>
        /// <param name="NoticeItemId">发货通知单明细id</param>
        /// <returns></returns>
        Task<List<StepListDto>> GetStepListId(string NoticeItemId);

        Task<AjaxResult> UpdateStepsPickMain(AddStepsPickMain data);
        Task<AjaxResult> UpdateReplacePickMain(AddStepsPickMain data);
        //新增物料分步备货保存
        Task<AjaxResult> AddStepsPickMain(AddStepsPickMain data);
        //替换物料分步备货保存
        Task<AjaxResult> ReplaceAddPickMain(AddStepsPickMain data);

        //备货单效验
        Task<VerifyClose> TranslationStock(AddStepsPickMain data);

        /// <summary>
        /// 获取全部可用库存
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<PageResult<InventoryDetail>> GetInventoryDetail(PageInput<RetrievalSeach> input);


    }
}